#pragma once


#define RUTA_ACTORES "data/actores/"

typedef unsigned int ID;

namespace Actores{
	enum TipoActor{
		JUGADOR,
		NPC,
		OBJETO
		};

	}

class NPC;
class Player;

class Actor
	{

	friend NPC;
	friend Player;

	protected:
		float x;
		float y;

		float xDestino;
		float yDestino;

		bool eliminar;

	private:
		ID idActor;
		Actores::TipoActor tipo;
	public:
		Actor(ID id, Actores::TipoActor t);
		~Actor(void);

		virtual void update(float speedFactor) = 0;
		virtual void render() = 0;		
	public: 
		//getters
		ID getID(){return idActor;};
		Actores::TipoActor getTipo(){return tipo;};
		float getX(){return x;}
		float getY(){return y;}
		bool isMarcadoEliminacion(){return eliminar;}
	public:
		//metodos utiles
		bool enMovimiento();
		void mover(float x, float y, float tiempo);
	};
